A network element (such as a router or switch) transmits and receives network data using one or more ports of that network element. Each port on the network element has a physical link speed that limits the rate at which network data can be transmitted from that port. The network element uses one or more queues to store the network data that is to be transmitted from one of the ports of the network element. The maximum data that a queue stores is determined by the available buffer memory and a buffer configuration for the queue. When the amount of network data that is to be transmitted by one of the ports on a network element, or the overall data transmitted by a network element, is greater than the port or network element can handle within a given period, network congestion can occur, resulting in increased latency for network data propagation through the nodes on the network.
In many environments, but particularly in high performance computer networking and data center environments, it can be essential for network administrators to attain a complete understanding of network latency within and between network elements on the network. Latency on a physical link is generally constant, as link latency while data is traveling on the physical link is governed by the physics and length of the media type for that link. However, latency within each network element can be subject to substantial variability based on device architecture and prevailing network conditions. Thus, it is generally accepted that forwarding latency within a network element will vary.
Traditionally, evaluating ingress to egress latency of a given network element or interface pair is achieved through the use of an external test harness. For example, optical taps on ingress and egress can be used to feed a capture device, which compares the arrival time of copies of packets from either side of the device under test. However, while test harnesses provide a means for bench testing under artificial scenarios, such testing solutions do not scale to real-world applications where hundreds or thousands of interfaces are in use and traffic flows traverse multiple paths across a network. Alternatively, artificial test data can be generated by a network element or injected into the network by a test device and monitored to enable some form of latency measurement. However, an accurate measure of real-word latency on production networks cannot be properly determined using artificially generated network data.